package com.xidian.zhiancloud.model.exam;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import io.swagger.annotations.ApiModel;
import com.xidian.zhiancloud.qo.BaseReqQuery;

/**
 * 培训计划对象 t_train_plan
 * 
 * @author zhouweitao
 * @date 2021-03-16
 */
public class TrainPlan extends BaseReqQuery
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 公司id */
    private Long companyId;

    /** 培训名称 */
    private String trainName;

    /** 培训类型 */
    private String trainType;

    /** 组织部门 */
    private String department;

    /** 培训模式 0线上1线下 */
    private String trainMode;

    /** 培训地址 */
    private String trainAddress;

    /** 学时(最大9999学时) */
    private Long period;

    /** 培训介绍 */
    private String trainIntroduce;

    /** 培训级别1公司级2部门级3科室级4班组级 */
    private String trainLevel;

    /** 是否需要考核0否1是 */
    private String isAudit;

    /** 考试形式0线上1线下 */
    private String examType;

    /** 考试起始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date examStartTime;

    /** 考试终止时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date examEndTime;

    /** 试卷名称 */
    private String examPaper;

    /** 是否自动发布0否1是 */
    private String isAutosend;

    /** 考试地址 */
    private String examAddress;

    /** 学员字符串形式存学员id */
    private String student;
    
    private List<TrainPlanUser> users;
    private List<TrainContent> contents;

    /** 状态0待发布1已发布 */
    private String state;
    
    private int number;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setCompanyId(Long companyId) 
    {
        this.companyId = companyId;
    }

    public Long getCompanyId() 
    {
        return companyId;
    }
    public void setTrainName(String trainName) 
    {
        this.trainName = trainName;
    }

    public String getTrainName() 
    {
        return trainName;
    }
    public void setTrainType(String trainType) 
    {
        this.trainType = trainType;
    }

    public String getTrainType() 
    {
        return trainType;
    }
    public void setDepartment(String department) 
    {
        this.department = department;
    }

    public String getDepartment() 
    {
        return department;
    }
    public void setTrainMode(String trainMode) 
    {
        this.trainMode = trainMode;
    }

    public String getTrainMode() 
    {
        return trainMode;
    }
    public void setTrainAddress(String trainAddress) 
    {
        this.trainAddress = trainAddress;
    }

    public String getTrainAddress() 
    {
        return trainAddress;
    }
    public void setPeriod(Long period) 
    {
        this.period = period;
    }

    public Long getPeriod() 
    {
        return period;
    }
    public void setTrainIntroduce(String trainIntroduce) 
    {
        this.trainIntroduce = trainIntroduce;
    }

    public String getTrainIntroduce() 
    {
        return trainIntroduce;
    }
    public void setTrainLevel(String trainLevel) 
    {
        this.trainLevel = trainLevel;
    }

    public String getTrainLevel() 
    {
        return trainLevel;
    }
    public void setIsAudit(String isAudit) 
    {
        this.isAudit = isAudit;
    }

    public String getIsAudit() 
    {
        return isAudit;
    }
    public void setExamType(String examType) 
    {
        this.examType = examType;
    }

    public String getExamType() 
    {
        return examType;
    }
    public void setExamStartTime(Date examStartTime) 
    {
        this.examStartTime = examStartTime;
    }

    public Date getExamStartTime() 
    {
        return examStartTime;
    }
    public void setExamEndTime(Date examEndTime) 
    {
        this.examEndTime = examEndTime;
    }

    public List<TrainPlanUser> getUsers() {
		return users;
	}

	public void setUsers(List<TrainPlanUser> users) {
		this.users = users;
	}

	public int getNumber() {
		return number;
	}

	public void setNumber(int number) {
		this.number = number;
	}

	public List<TrainContent> getContents() {
		return contents;
	}

	public void setContents(List<TrainContent> contents) {
		this.contents = contents;
	}

	public Date getExamEndTime() 
    {
        return examEndTime;
    }
    public void setExamPaper(String examPaper) 
    {
        this.examPaper = examPaper;
    }

    public String getExamPaper() 
    {
        return examPaper;
    }
    public void setIsAutosend(String isAutosend) 
    {
        this.isAutosend = isAutosend;
    }

    public String getIsAutosend() 
    {
        return isAutosend;
    }
    public void setExamAddress(String examAddress) 
    {
        this.examAddress = examAddress;
    }

    public String getExamAddress() 
    {
        return examAddress;
    }
    public void setStudent(String student) 
    {
        this.student = student;
    }

    public String getStudent() 
    {
        return student;
    }
    public void setState(String state) 
    {
        this.state = state;
    }

    public String getState() 
    {
        return state;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("companyId", getCompanyId())
            .append("trainName", getTrainName())
            .append("trainType", getTrainType())
            .append("department", getDepartment())
            .append("trainMode", getTrainMode())
            .append("trainAddress", getTrainAddress())
            .append("period", getPeriod())
            .append("trainIntroduce", getTrainIntroduce())
            .append("trainLevel", getTrainLevel())
            .append("isAudit", getIsAudit())
            .append("examType", getExamType())
            .append("examStartTime", getExamStartTime())
            .append("examEndTime", getExamEndTime())
            .append("examPaper", getExamPaper())
            .append("isAutosend", getIsAutosend())
            .append("examAddress", getExamAddress())
            .append("student", getStudent())
            .append("state", getState())
            .toString();
    }
}
